Systems and Methods for Task Assistance

ABSTRACT

A method of task management executes at a computing device having one or more processors and memory. The memory stores one or more programs configured for execution by the one or more processors. There is received a description of a task associated with a user. Upon receipt of the description of the task, one or more entities associated with the task are identified using at least the description of the task and geographic information about the user. Information is identified for performing the task with the at least one respective entity in the one or more entities based upon an identity of the entity. This identified information for performing the task is then formatted for use by the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/536,687, filed Aug. 9, 2019, which is a continuation of U.S. patentapplication Ser. No. 14/473,564, filed Aug. 29, 2014 and issued as U.S.Pat. No. 10,423,932 on Sep. 24, 2019, the entire disclosures of whichare incorporated herein by reference.

TECHNICAL FIELD

The disclosure relates generally to electronic messaging applications,and more specifically to providing task assistance.

BACKGROUND

Electronic messaging applications, such as email, convey various typesof information to a recipient such as messages to and from variousothers. Some messages include a task that the recipient must perform. Assuch, many messaging applications track not only messages received by orsent by a recipient but also tasks that the recipient is to perform.Such tasks may be independent of messages to and from others, orassociated with messages from others. What are needed in the art aresystems and methods for assisting a recipient with performing suchtasks.

SUMMARY

Disclosed implementations address the above deficiencies and otherproblems associated with performing tasks. The disclosed implementationsprovide ways to help a recipient perform tasks.

In accordance with some implementations, a method of task assistanceexecutes at a computing device having one or more processors and memory.The memory stores one or more programs configured for execution by theone or more processors. A description of a task associated with a useris received. In some instances the user creates the task. In otherinstances the task is inferred, subject to user confirmation, from amessage sent to the user, for instance an E-mail message. Upon receiptof the description of the task, one or more entities associated with thetask are identified using at least the description of the task andgeographic information about the user. In some instances, an entity isdeemed to be associated with a task when the entity is capable ofperforming the task and the entity services such tasks from users thatare at or from the location identified in the geographical information.Information for performing the task with at least one respective entityin the one or more entities based upon an identity of the entity isidentified and formatted for use by the user.

In some instances, an entity in the one or more entities is a businessor a government entity. In some instances, the task is cancellation of asubscription or recurring service and the information for performing thetask is a telephone number, uniform resource locator, or mailing addressused by an entity in the one or more entities to service requests tocancel subscription requests or requests to cancel a recurring service.In some instances, the task is a service request and the information forperforming the task is a telephone number or uniform resource locatorused by an entity in the one or more entities to handle the servicerequest.

In some embodiments, the method further comprises providing anidentification of a first entity in the one or more entities and a setof opening and closing times for each day of the week in which the firstentity is available to handle the task.

In some instances, the method further comprises providing information onwhether or not an entity in the one or more entities is presentlyavailable to perform the task. In some embodiments, when the entity isavailable to perform the task, a time of day is provided when the entitywill stop receiving requests to perform the task.

In some embodiments, an entity in the one or more entities is agovernment entity and the task is obtaining or renewing a governmentlicense or obtaining or amending a government permit.

In some embodiments, the identifying one or more entities associatedwith the task comprises retrieving non-transient stored geographicalinformation about the user. In some such embodiments, the information isstored as a user profile.

In some instances, the identifying the one or more entities associatedwith the task comprises retrieving the geographical information aboutthe user from a wireless device associated with the user. In some suchinstances, the geographical information is a present location of theuser. In other instances, the geographical information is a geographicposition, such as a street address, that the user has provided forstorage in a profile or other form of record associated with the user.

In some embodiments, an entity in the one or more entities is part of alarger organization and the identifying one or more entities associatedwith the task comprises resolving which entity in the largerorganization pertains to the task based upon the geographicalinformation about the user. For instance, in some embodiments the largerorganization is a first government entity and an entity in the one moreentities is a government office for the first government entity. In oneexample, the larger organization a Department of Motor Vehicles and theentity within the larger organization that is identified for a user isthe office of the Department of Motor Vehicles that is most proximate tothe and geographic information about the user. In another instance, thelarger organization is a business organization and an entity in the onemore entities is a location of an office for the business organization.

In some embodiments, the identifying information for performing the taskwith the at least one respective entity in the one or more entities isfurther based upon the description of the task. In some embodiments, thetask is returning merchandise. In some embodiments, the method furthercomprises verifying that a first entity in the one or more entities ispresently available to service the task and, when the first entity isnot presently available to service the task, the method furthercomprises refraining from presenting information regarding the firstentity.

Another aspect of the present disclosure provides a computing devicecomprising one or more processors, memory, and one or more programsstored in the memory. The one or more programs are configured forexecution by the one or more processors. The one or more programscomprise instructions for receiving a description of a task associatedwith a user. Upon receipt of the description of the task, one or moreentities associated with the task are identified using at least thedescription of the task and geographic information about the user.Information for performing the task with at least one respective entityin the one or more entities is identified based upon an identity of theentity. This information for performing the task is formatted for use bythe user.

Another aspect of the present disclosure provides a non-transitorycomputer readable storage medium storing one or more programs configuredfor execution by a computing device having one or more processors andmemory. The one or more programs comprise instructions for receiving adescription of a task associated with a user. Upon receipt thedescription of the task, one or more entities associated with the taskare identified using at least the description of the task and geographicinformation about the user. Information for performing the task with atleast one respective entity in the one or more entities is identifiedbased upon an identity of the entity. This information for performingthe task is formatted for use by the user.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the aforementioned implementations of theinvention as well as additional implementations thereof, referenceshould be made to the Description of Implementations below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures.

FIG. 1 illustrates a context in which some implementations operate.

FIG. 2 is a block diagram of a client computing device according to someimplementations.

FIG. 3 is a block diagram of a server according to some implementations.

FIGS. 4A-4E illustrate aspects of a user interface for task assistancein accordance with some implementations.

FIGS. 5A-5C provide a flowchart of a process for task assistanceaccording to some implementations.

Reference will now be made in detail to implementations, examples ofwhich are illustrated in the accompanying drawings. In the followingdetailed description, numerous specific details are set forth in orderto provide a thorough understanding of the present invention. However,it will be apparent to one of ordinary skill in the art that the presentinvention may be practiced without these specific details.

DESCRIPTION OF IMPLEMENTATIONS

FIG. 1 is a block diagram that illustrates the major components of someimplementations. The various client devices 102 (also identified hereinas computing devices) and servers 300 in a server system 110 communicateover one or more networks 108 (such as the Internet). A client device102 may be a smart phone, a tablet computer, a laptop computer, adesktop computer, or other computing device that has access to acommunication network 108 and can run a messaging application 106. Insome implementations, the messaging application runs within a webbrowser 104.

In some implementations, the server system 110 consists of a singleserver 300. More commonly, the server system 110 includes a plurality ofservers 300. In some implementations, the servers 300 are connected byan internal communication network of bus 122. The server system 110includes one or more web servers 112, which receive requests from users(e.g., from client devices 102) and return appropriate information,resources, links, and so on. In some implementations, the server system110 includes one or more application servers 114, which provide variousapplications, such as a messaging application 106. The server system 110typically includes one or more databases 116, which store informationsuch as web pages, a user list 118, and various user information 120(e.g., user names and encrypted passwords, user preferences, and so on).

FIG. 2 is a block diagram illustrating a client device 102 that a useruses to access a messaging application 106. A client device is alsoreferred to as a computing device, which may be a tablet computer, alaptop computer, a smart phone, a desktop computer, a PDA, or othercomputing device than can run a messaging application 106 and has accessto a communication network 108. A client device 102 typically includesone or more processing units (CPUs) 202 for executing modules, programs,or instructions stored in memory 214 and thereby performing processingoperations; one or more network or other communications interfaces 204;memory 214; and one or more communication buses 212 for interconnectingthese components. The communication buses 212 may include circuitry(sometimes called a chipset) that interconnects and controlscommunications between system components. A client device 102 includes auser interface 206 comprising a display device 208 and one or more inputdevices or mechanisms 210. In some implementations, the inputdevice/mechanism includes a keyboard and a mouse; in someimplementations, the input device/mechanism includes a “soft” keyboard,which is displayed as needed on the display device 208, enabling a userto “press keys” that appear on the display 208.

In some implementations, the memory 214 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM or other random access solidstate memory devices. In some implementations, memory 214 includesnon-volatile memory, such as one or more magnetic disk storage devices,optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. In some implementations, thememory 214 includes one or more storage devices remotely located fromthe CPU(s) 202. The memory 214, or alternately the non-volatile memorydevice(s) within memory 214, comprises a non-transitory computerreadable storage medium. In some implementations, the memory 214, or thecomputer readable storage medium of memory 214, stores the followingprograms, modules, and data structures, or a subset thereof:

-   -   an operating system 216, which includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a communications module 218, which is used for connecting the        client device 102 to other computers and devices via the one or        more communication network interfaces 204 (wired or wireless)        and one or more communication networks 108, such as the        Internet, other wide area networks, local area networks,        metropolitan area networks, and so on;    -   a display module 220, which receives input from the one or more        input devices 210, and generates user interface elements for        display on the display device 208;    -   a web browser 104, which enables a user to communicate over a        network 108 (such as the Internet) with remote computers or        devices;    -   a messaging application 106, which enables the user to send and        receive electronic messages. In some implementations, the        messaging application is an email application. In some        implementations, the messaging application is an instant        messaging application. In some implementations, the messaging        application 106 runs within the web browser 104 as illustrated        in FIG. 1. In some implementations, the messaging application        106 runs independently of a web browser 104 (e.g., a desktop        application). An example messaging application is illustrated        below in FIGS. 4A-4E; and    -   application data 222, which is used by the messaging application        106. The application data comprises messages 224 (e.g., email        messages or instant messages) as well as tasks 226, and        information 228 for completing tasks. In some embodiments a task        226 is associated with a message 224. In some embodiments a task        226 is independent of all messages. The application data 222 may        include configuration data 230, such as user preferences, user        history, geographic information about the user, or the state of        configuration options.

Each of the above identified executable modules, applications, or setsof procedures may be stored in one or more of the previously mentionedmemory devices and corresponds to a set of instructions for performing afunction described above. The above identified modules or programs(i.e., sets of instructions) need not be implemented as separatesoftware programs, procedures, or modules, and thus various subsets ofthese modules may be combined or otherwise re-arranged in variousimplementations. In some implementations, the memory 214 may store asubset of the modules and data structures identified above. Furthermore,the memory 214 may store additional modules or data structures notdescribed above.

Although FIG. 2 shows a client device 102, FIG. 2 is intended more as afunctional description of the various features that may be presentrather than as a structural schematic of the implementations describedherein. In practice, and as recognized by those of ordinary skill in theart, items shown separately could be combined and some items could beseparated.

FIG. 3 is a block diagram illustrating a server 300 that may be used ina server system 110. A typical server system includes many individualservers 300, which may be hundreds or thousands. A server 300 typicallyincludes one or more processing units (CPUs) 302 for executing modules,programs, or instructions stored in the memory 314 and therebyperforming processing operations; one or more network or othercommunications interfaces 304; memory 314; and one or more communicationbuses 312 for interconnecting these components. The communication buses312 may include circuitry (sometimes called a chipset) thatinterconnects and controls communications between system components. Insome implementations, a server 300 includes a user interface 306, whichmay include a display device 308 and one or more input devices 310, suchas a keyboard and a mouse.

In some implementations, the memory 314 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM or other random access solidstate memory devices. In some implementations, the memory 314 includesnon-volatile memory, such as one or more magnetic disk storage devices,optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. In some implementations, thememory 314 includes one or more storage devices remotely located fromthe CPU(s) 302. The memory 314, or alternately the non-volatile memorydevice(s) within memory 314, comprises a non-transitory computerreadable storage medium. In some implementations, the memory 314, or thecomputer readable storage medium of memory 314, stores the followingprograms, modules, and data structures, or a subset thereof:

-   -   an operating system 316, which includes procedures for handling        various basic system services and for performing hardware        dependent tasks;    -   a communications module 318, which is used for connecting the        server 300 to other computers via the one or more communication        network interfaces 304 (wired or wireless), an internal network        or bus 122, or other communication networks 108, such as the        Internet, other wide area networks, local area networks,        metropolitan area networks, and so on;    -   an optional display module 320, which receives input from one or        more input devices 310, and generates user interface elements        for display on a display device 308;    -   one or more web servers 112, which receive requests from client        device 102, and returns responsive web pages, resources, or        links. In some implementations, each request is logged in the        database 116;    -   one or more application servers 114, which provide various        applications (such as an email or other messaging application)        to client devices 102. In some instances, applications are        provided as a set of web pages, which are delivered to client        devices 102 and displayed in a web browser 104. The web pages        are delivered as needed or requested. In some instances, an        application is delivered to a client device 102 as a download,        which is installed and run from the client device 102 outside of        a web browser 104;    -   one or more databases 116, which store various data used by the        modules or programs identified above. In some implementations,        the database 116 includes a list of authorized users, which may        include user names, encrypted passwords, and other relevant        information about each user. The database 116 also stores user        specific data 120 that is used by one or more of the        applications provided by the application server. For example,        some implementations store the electronic messages 224 for each        user. As another example, some implementations store geographic        information about a user.

Each of the above identified elements in FIG. 3 may be stored in one ormore of the previously mentioned memory devices. Each executableprogram, module, or procedure corresponds to a set of instructions forperforming a function described above. The above identified modules orprograms (i.e., sets of instructions) need not be implemented asseparate software programs, procedures or modules, and thus varioussubsets of these modules may be combined or otherwise re-arranged invarious implementations. In some implementations, the memory 314 maystore a subset of the modules and data structures identified above.Furthermore, the memory 314 may store additional modules or datastructures not described above.

Although FIG. 3 illustrates a server 300, FIG. 3 is intended more asfunctional illustration of the various features that may be present in aset of one or more servers rather than as a structural schematic of theimplementations described herein. In practice, and as recognized bythose of ordinary skill in the art, items shown separately could becombined and some items could be separated. The actual number of serversused to implement these features, and how features are allocated amongthem, will vary from one implementation to another, and may depend inpart on the amount of data traffic that the system must handle duringpeak usage periods as well as during average usage periods.

As illustrated in FIGS. 2 and 3, the functionality for a messagingapplication may be shared between a client device 102 and a serversystem 110. In some implementations, after the messaging application isinstalled on a client device 102, the majority of the subsequentprocessing occurs on the client device. In other implementations, themajority of the processing and data storage occurs at a server 300, andthe client device 102 uses a web browser 104 to view and interact withthe data. One of skill in the art recognizes that various allocations offunctionality between the client device 102 and the server system 110are possible, and some implementations support multiple configurations(e.g., based on user selection).

FIG. 4A illustrates features of a messaging application that supportstask assistance in accordance with some implementations. FIG. 4Aillustrates an electronic message list 402, which may be displayed aspart of an electronic messaging application (e.g., an emailapplication). In this example, each row in the list represents aseparate message object (e.g., messages 404, 408, and 414-426), aseparate message cluster (e.g., 406, 410), or a task 412. The messageobjects all are intended for a user associated with the electronicmessage list 402. In some embodiments, individual messages (e.g.,messages 404, 408, and 414-426) are message threads, messageconversations, or messages that are addressed to one or more users,including the user uniquely associated with the electronic message list402.

In FIG. 4A, the electronic message list 402 is, in particular, shown tocomprise at least two message clusters, cluster 406 and cluster 410.Cluster 406 is a group of electronic messages having a collectiveassociation, namely promotional material (e.g., advertisements forretail sales, newsletters from stores). As can be seen in FIG. 4A,cluster 406 comprises nine new electronic messages, and cluster 410comprises 1 new electronic message. In some embodiments, a newelectronic message refers to a message that has not been viewed, opened,acknowledged or read by the user of the messaging application. Messageclusters are disclosed further in U.S. patent application Ser. No.14/145,005, entitled “Systems and Methods for Throttling Display ofElectronic Messages,” filed Dec. 31, 2013, and U.S. patent applicationSer. No. 14/139,205, entitled “Systems and Methods for ClusteringElectronic Messages,” filed Dec. 23, 2013, each of which is herebyincorporated by reference herein in its entirety.

Continuing to refer to FIG. 4A, task assistance is disclosed in moredetail. A description of a task 428 associated with a user is received.In some instances the user creates the description of the task 428 bydirect input (e.g. through a keypad interface). In other instances, thetask is inferred from an electronic message object in the electronicmessage list 402. Ways to infer a task from an electronic message objectare disclosed in U.S. patent application Ser. No. 14/161,368, entitled“Identifying Tasks in Messages,” filed Jan. 22, 2014, which is herebyincorporated by reference herein in its entirety.

Upon receipt of the description of the task (e.g., directly after theuser provide the task), one or more entities associated with the taskare identified using at least the description of the task and geographicinformation about the user. In some instances, an entity is deemed to beassociated with a task when the entity is capable of performing the taskand the entity services such tasks from users that are at or from thelocation identified in the geographical information. Information 430 forperforming the task with at least one respective entity in the one ormore entities based upon an identity of the entity is identified andformatted for use by the user. In the example illustrated in FIG. 4A,the description of the task “renew drivers license” coupled withgeographic information about the user (“e.g., the user's home address orhome GPS coordinates”) is used to determine the correct department ofmotor vehicles website to suggest to the user. In one example, theuser's geographic information identifies Daly City, Calif. and the DalyCity office of the California Department of Motor Vehicles is identifiedas the information 430 for performing the task of renewing a driver'slicense. In this example, the URL for the Daly City office of theCalifornia Department of Motor Vehicles is formatted for use by theuser. In another example, the user's geographic information identifiesDaly City, Calif. and the California URL for the California Departmentof Motor Vehicles is identified as the information 430 for performingthe task of renewing a driver's license. In this example, the CaliforniaURL for the California Department of Motor Vehicles is formatted for useby the user.

In some instances, an entity in the one or more entities is a businessor a government entity. In some instances, the task is cancellation of asubscription or recurring service. For example, referring to FIG. 4B,the task 434 is cancelling a cable subscription and the information 436for performing the task is a uniform resource locator for cancelling thecable subscription. In some instances, the information 438 forperforming the task 436 using two or more entities in the identified oneor more entities is provided, as illustrated in FIG. 4C. While FIGS. 4Athrough 4C provide the example of uniform resource locators that lead toinformation for performing the task, mailing addresses, phone numbers,social media handles, or any other form of method of communicationinformation to perform the task can be provided. In some instances, thetask is a service request (e.g., “call plumber”) and the information forperforming the task is a telephone number or uniform resource locatorused by an entity in the one or more entities to handle the servicerequest.

Referring to FIG. 4D, in some embodiments, the method further comprisesproviding an identification 440 of a first entity in the one or moreentities and a set of opening and closing times 442 for each day of theweek in which the first entity is available to handle the task.

Referring to FIG. 4E, in some instances, the method further comprisesproviding information on whether or not an entity in the one or moreentities is presently available to perform the task. In someembodiments, when the entity is available to perform the task, a time ofday is provided when the entity will stop receiving requests to performthe task 444 or an amount of time 446 before the entity will stopreceiving requests to perform the task is provided.

In some embodiments, an entity in the one or more entities is agovernment entity and the task is obtaining or renewing a governmentlicense or obtaining or amending a government permit. Examples ofgovernment licenses and permits include, but are not limited to driverslicenses, building permits, disabled parking permits, gun permits,hunting permits, environmental permits, fishing license, a liquorlicense, and a nightclub permit, to name a few nonlimiting examples.

In some embodiments, the identifying one or more entities associatedwith the task comprises retrieving non-transient stored geographicalinformation about the user. In some such embodiments, the information isstored as a user profile. For example, referring to FIG. 3, in someembodiments the non-transient stored geographical information about theuser is stored in a user profile 340 uniquely associated with the user.

In some instances, the identifying the one or more entities associatedwith the task comprises retrieving the geographical information aboutthe user from a wireless device associated with the user. In some suchinstances, the geographical information is a present location of theuser. In other instances, the geographical information is a geographicposition, such as a street address, that the user has provided forstorage in a profile (e.g., user profile 340 of FIG. 3) or other form ofrecord associated with the user.

In some embodiments, the identifying information for performing the taskwith the at least one respective entity in the one or more entities isfurther based upon the description of the task. For example, if thedescription of the task is “repair automobile”, the one or more entitiesprovided will be those that wash automobiles. Alternatively, if thedescription of the task is “wash car”, the one or more entities providedwill be those that wash cars. Alternatively still, if the description ofthe task is “donate car”, the one or more entities provided will bethose that accept automobile donations.

Referring to FIG. 2, a display device 208 is inherently limited in size.Accordingly, the number of message objects displayed in the message list402 is necessarily limited. Scrolling may be necessary for a user to getto a desired message. If the number of messages in the message list issmall enough, all of the messages may be able to be displayed.

FIGS. 5A-5C provide a flowchart of a process 500, performed by acomputing device, for providing task management (502). The method isperformed (504) at a computing device 102 and/or 110 having one or moreprocessors and memory. The memory stores (504) one or more programsconfigured for execution by the one or more processors.

A description of a task associated with a user is received. Upon receiptof the description of the task, one or more entities associated with thetask are identified using at least the description of the task andgeographic information about the user (508). Further, information isidentified for performing the task with at least one respective entityin the one or more entities based upon an identity of the entity. Insome implementations, an entity in the one or more entities is abusiness or a government entity (512).

In some implementations, the task is cancellation of a subscription orrecurring service and the information for performing the task is atelephone number, uniform resource locator, or mailing address used byan entity in the one or more entities to service requests to cancelsubscription requests or requests to cancel a recurring service (514).In some implementations, the task is a service request and theinformation for performing the task is a telephone number or uniformresource locator used by an entity in the one or more entities to handlethe service request (516). In some implementations, the method furthercomprises providing an identification of a first entity in the one ormore entities and a set of opening and closing times for each day of theweek in which the first entity is available to handle the task (518).

In some implementations, information is provided on whether or not anentity in the one or more entities is presently available to perform thetask and, when the entity is available to perform the task, a time ofday when the entity will stop receiving requests to perform the task(520). In some implementations, an entity in the one or more entities isa government entity and the task is obtaining or renewing a governmentlicense or obtaining or amending a government permit (522). In someimplementations, the identifying one or more entities associated withthe task comprises retrieving non-transient stored geographicalinformation about the user (524). In some implementations, theidentifying one or more entities associated with the task comprisesretrieving the geographical information about the user from a wirelessdevice associated with the user (526).

In some implementations, an entity in the one or more entities is partof a larger organization and the identifying one or more entitiesassociated with the task comprises resolving which entity in the largerorganization pertains to the task based upon the geographicalinformation about the user (528). In some implementations, the largerorganization is a first government entity and an entity in the one moreentities is a government office for the first government entity (530).In some implementations, the larger organization is a businessorganization and an entity in the one more entities is a location of anoffice for the business organization (532).

In some implementations, the identifying information for performing thetask with the at least one respective entity in the one or more entitiesis further based upon the description of the task (534). In someimplementations, the task is returning merchandise (536). The identifiedinformation is formatted for use by the user (538). For example, in someembodiments, the identified information is formatted for display on aclient device 102.

The terminology used in the description of the invention herein is forthe purpose of describing particular implementations only and is notintended to be limiting of the invention. As used in the description ofthe invention and the appended claims, the singular forms “a,” “an,” and“the” are intended to include the plural forms as well, unless thecontext clearly indicates otherwise. It will also be understood that theterm “and/or” as used herein refers to and encompasses any and allpossible combinations of one or more of the associated listed items. Itwill be further understood that the terms “comprises” and/or“comprising,” when used in this specification, specify the presence ofstated features, steps, operations, elements, and/or components, but donot preclude the presence or addition of one or more other features,steps, operations, elements, components, and/or groups thereof.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific implementations. However, theillustrative discussions above are not intended to be exhaustive or tolimit the invention to the precise forms disclosed. Many modificationsand variations are possible in view of the above teachings. Theimplementations described herein were chosen and described in order tobest explain the principles of the invention and its practicalapplications, to thereby enable others skilled in the art to bestutilize the invention and various implementations with variousmodifications as are suited to the particular use contemplated.

What is claimed is:
 1. A method of providing task assistance inassociation with an electronic messaging application, the methodcomprising: obtaining, by one or more processors of a computing deviceassociated with the electronic messaging application, an identificationof a task to be performed by a user; identifying, by the one or moreprocessors, at least one entity corresponding to the task based on adescription of the task and information about the user; based onidentifying the at least one entity, the one or more processorsidentifying information for performing the task; formatting, by one ormore processors, the identified information for performing the task forpresentation via a user interface; and outputting by one or moreprocessors, for presentation with the electronic messaging applicationvia the user interface, the identified information for performing thetask and information about the identified at least one entity.
 2. Themethod of claim 1, wherein obtaining the identification of the task tobe performed includes identifying the task based on an electronicmessage object associated with one or more messages of the electronicmessaging application.
 3. The method of claim 1, wherein identifying theat least one entity includes evaluating whether each entity of a set ofentities is capable of enabling performance of the task.
 4. The methodof claim 3, wherein identifying the at least one entity includes furtherincludes comparing geographical locations for each of the entities inthe set to geographical information for a location associated with acomputing device of the user.
 5. The method of claim 1, furthercomprising selecting the at least one entity from a set of entitiesassociated with the task by determining that the at least one entity iscapable of enabling the user to perform the task.
 6. The method of claim5, wherein the set of entities includes one or more of business entitiesor government entities.
 7. The method of claim 1, wherein the at leastone entity is a government entity, and the task is one of obtaining agovernment license, renewing the government license, obtaining agovernment permit, or amending the government permit.
 8. The method ofclaim 1, wherein the at least one entity is a business entity, and thetask is one of a service request, a cancellation request, or a renewalrequest.
 9. The method of claim 1, wherein formatting the identifiedinformation for performing the task for presentation via the userinterface includes adding the identified information to a task item in amessage list.
 10. The method of claim 1, wherein identifying the atleast one entity corresponding to the task includes identifying a timeof day or an amount of time in which the at least one entity is able toassist in performing the task.
 11. The method of claim 10, whereinidentifying the time of day or the amount of time includes evaluating atleast one of an opening time, a closing time, or a time of day when theat least one entity will stop receiving requests to assist in performingthe task.
 12. The method of claim 1, wherein the electronic messagingapplication is either an email application or an instant messagingapplication.
 13. A computing device, comprising: one or more processors;and memory operatively coupled to the one or more processors, the memorystoring one or more programs configured for execution by the one or moreprocessors, the one or more programs comprising instructions for amethod of providing task assistance in association with an electronicmessaging application, the method comprising: obtaining anidentification of a task to be performed by a user; identifying at leastone entity corresponding to the task based on a description of the taskand information about the user; based on identifying the at least oneentity, identifying information for performing the task; formatting theidentified information for performing the task for presentation via auser interface; and outputting, for presentation with the electronicmessaging application via the user interface, the identified informationfor performing the task and information about the identified at leastone entity.
 14. The computing device of claim 13, wherein obtaining theidentification of the task to be performed includes identifying the taskbased on an electronic message object associated with one or moremessages of the electronic messaging application.
 15. The computingdevice of claim 13, wherein identifying the at least one entity includesevaluating whether each entity of a set of entities is capable ofenabling performance of the task.
 16. The computing device of claim 15,wherein identifying the at least one entity includes further includescomparing geographical locations for each of the entities in the set togeographical information for a location associated with a computingdevice of the user.
 17. The computing device of claim 13, wherein themethod further comprises selecting the at least one entity from a set ofentities associated with the task by determining that the at least oneentity is capable of enabling the user to perform the task.
 18. Anon-transitory computer readable storage medium storing one or moreprograms configured for execution by a computing device having one ormore processors, the one or more programs comprising instructions forperforming a method of providing task assistance in association with anelectronic messaging application, the method comprising: obtaining anidentification of a task to be performed by a user; identifying at leastone entity corresponding to the task based on a description of the taskand information about the user; based on identifying the at least oneentity, identifying information for performing the task; formatting theidentified information for performing the task for presentation via auser interface; and outputting, for presentation with the electronicmessaging application via the user interface, the identified informationfor performing the task and information about the identified at leastone entity.
 19. The non-transitory computer readable storage medium ofclaim 18, wherein obtaining the identification of the task to beperformed includes identifying the task based on an electronic messageobject associated with one or more messages of the electronic messagingapplication.
 20. The non-transitory computer readable storage medium ofclaim 18, wherein identifying the at least one entity includesevaluating whether each entity of a set of entities is capable ofenabling performance of the task.